/**
 * @file demo4.c
 * @author WRS (1352509846@qq.com)
 * @brief 寻找两个正序数组中的中位数
 * 给定两个大小分别为m和n的正序（从小到大）数组nums1和nums2
 * 找出这两个正序数组中的中位数
 * @version 0.1
 * @date 2021-09-10
 * 
 * @copyright Copyright (c) 2021
 * 
 */

#include <stdio.h>
#include <stdlib.h>
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size)
{
    int i=0,j=0;
    int n1=0,n2=0;
    int temp = nums1Size+nums2Size;
    int median = 0; //中位数
    double *nums=NULL;
    nums = malloc(temp*4);

    for(i=0;i<temp;i++)
    {
        if(n1<nums1Size)
        {
            if(nums1[n1]<nums2[n2])
            {
                nums[i] = nums1[n1];
                n1++;
            }
        }
    }
    
    for(int i=0;i<temp;i++)
    {
        printf("%f ",nums[i]);
    }

    if(temp%2==0)
    {
        return (nums[(temp/2)-1]+nums[temp/2])/2;
    }
    else
    {
        return nums[temp/2];
    }
}

int main(int argc, char const *argv[])
{
    int nums1[] = {1,2,3,4,5};
    int nums2[] = {6,7,8,9};
    findMedianSortedArrays(nums1,sizeof(nums1)/sizeof(int),nums2,sizeof(nums2)/sizeof(int));
    return 0;
}
